package org.ccay.async.task.dao;

import java.util.List;

import org.ccay.async.task.ImportErrorsVO;
import org.ccay.async.task.ImportTaskVO;
import org.ccay.core.base.PageVO;
import org.ccay.core.base.PagedResult;
import org.ccay.core.exception.ApplicationException;

public interface IImportTaskDao {

	/**
	 * 查询导入任务表
	 * 
	 * @author chaowangbang
	 * @since 2011-12-6
	 * @param importTaskVO
	 * @param pageVO
	 * @return
	 * @throws ApplicationException
	 */
	public PagedResult<ImportTaskVO> findImportTaskList(ImportTaskVO importTaskVO, PageVO pageVO)
			throws ApplicationException;

	/**
	 * 过滤模式
	 * 
	 * @author chaowangbang
	 * @since 2013-9-24
	 * @param importTaskVO
	 * @param pageVO
	 * @return
	 * @throws ApplicationException
	 */
	public PagedResult<ImportTaskVO> findImportTaskListFilter(ImportTaskVO importTaskVO, PageVO pageVO)
			throws ApplicationException;

	/**
	 * 查询导入任务表，用于导入监控
	 * 
	 * @author chaowangbang
	 * @since 2013-7-20
	 * @param importTaskVO
	 * @param pageVO
	 * @return
	 * @throws ApplicationException
	 */
	public PagedResult<ImportTaskVO> findImportTaskListMonitor(ImportTaskVO importTaskVO, PageVO pageVO)
			throws ApplicationException;

	/**
	 * 根据id查询导入任务
	 * 
	 * @author chaowangbang
	 * @since 2011-12-6
	 * @param importTaskVO
	 * @return
	 */
	public ImportTaskVO findImportTask(ImportTaskVO importTaskVO);

	/**
	 * 添加一个任务 insertImportTask
	 * 
	 * @author chaowangbang
	 * @since 2011-12-6
	 * @param importTaskVOS
	 * @return
	 */
	public int createImportTask(ImportTaskVO importTaskVOS);

	/**
	 * 更新控制台导入状态 updateImportTaskStatus
	 * 
	 * @author chaowangbang
	 * @since 2011-12-6
	 * @param importTaskVO
	 * @return
	 */
	public int updateImportTask(ImportTaskVO importTaskVO);

	/**
	 * 取消一个任务 insert cancelImportTask
	 * 
	 * @author chaowangbang
	 * @since 2011-12-6
	 * @param importTaskVO
	 * @return
	 */
	public int cancelImportTask(ImportTaskVO importTaskVO);

	/**
	 * 删除多个任务
	 * 
	 * @author chaowangbang
	 * @since 2011-12-6
	 * @param importTaskVOs
	 * @return
	 */
	public int deleteImportTaskList(List<ImportTaskVO> importTaskVOs);

	/**
	 * 删除单个任务
	 * 
	 * @author chaowangbang
	 * @since 2011-12-6
	 * @param importTaskVO
	 * @return
	 */
	public int deleteImportTask(ImportTaskVO importTaskVO);

	/**
	 * 查询任务类型
	 * 
	 * @author chaowangbang
	 * @param taskVO
	 * @since 2012-1-10
	 * @return
	 */
	public List<ImportTaskVO> findTypeIDDistinct(ImportTaskVO taskVO);

	/**
	 * 查询任务类型
	 * 
	 * @author chaowangbang
	 * @param taskVO
	 * @since 2012-1-10
	 * @return
	 */
	public List<ImportTaskVO> findMonitorTypeIDDistinct(ImportTaskVO taskVO);

	/**
	 * 返回任务的错误信息列表
	 * 
	 * @author chaowangbang
	 * @since 2012-08-31
	 * @return
	 */
	public List<ImportErrorsVO> findImportErrorsList(ImportErrorsVO importErrorsVO);

	
}
